feat(api): inspect stored analysis-run create fields on loopback - #377
Conversation
GAP-003A ninth slice: GET /v1/analysis-runs/{run_id}/request returns
metric-free snapshot, cutoff, model contract, and output profile so
operators can inspect a listed failed or cancelled run before retry.
GET-by-id remains refused. Stacked on retry HTTP. ADR 0034.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head COMMENT on f80bd97 (draft). Unique occupied: GET /v1/analysis-runs/{run_id}/request (ADR 0034). Metric-free stored create fields (snapshot, cutoff, model contract, output profile). FORBIDDEN_STORED_REQUEST_KEYS includes scientific_acceptance, terminal_result, tenant_workspace_id. CLI stacked on #395; consumer-parity on #387. Do not un-quarantine unscoped stored-request-by-client-key. Do not un-draft. Zero reviews on this SHA before this COMMENT. Never self-approve. Persistence remains GAP-003B. Do not weaken fail-closed. No Buyer language.
Summary
GAP-003A operator-visible stored-request GET on the loopback analysis-run surface.
GET /v1/analysis-runs/{run_id}/requestreturns the stored create fields of a listed run (snapshot_id,knowledge_cutoff,model_contract_version,output_profile) so operators can inspect a failed/cancelled run before retry. Collection GET (#368) lists onlyrun_id/run_state/idempotency_key; retry (#369) clones blindly. This slice closes that inspect gap.Stacked on #369 (
58bfc40d) over collection #368 over cancel #361 over protectedmain.Issue: #166
Contract
rmse,bias,coverage,SE-gate,scientific_acceptance,report,terminal_result,tenant_workspace_id.tepp.scientific_acceptance.v1never appears.run_id→ 413./cancel,/retry,/running,/terminal.snapshot_id.ADR
This slice uses ADR 0034 (
docs/adr/0034-analysis-run-stored-request-get.md).Numbering collision: #374 (Rubin loading uncertainty, on
main) also claimed ADR 0034. Same pattern as ADR 0030 (#362 / #364 / #373) and ADR 0032 (#369 / #370 / #371). Do not rewrite this PR's ADR number after push. Next free ADR is 0035. Do not reuse 0030, 0031, 0032, 0033, or 0034.Hour-20 suggested 0033; #375 and #372 already claimed 0033.
Not this PR (live — do not duplicate)
df33bfa3)96a34a41)42e05e31)99464037)dba3db0e)d8f3c5fa)b7a039b8)6a5d9777)58bfc40d) — this PR's base3f9e2d8b)f7d5e5a3)cc8ed995)837a18ab)442b159d)409a7bdc)Verification (local)
cargo clippy -p tepp_api --all-targets -- -D warningscargo test -p tepp_api --all-targets(82 unit tests including stored-request)RUSTDOCFLAGS='-D warnings' cargo doc -p tepp_api --no-depspython3 scripts/validate_documentation.pypython3 scripts/check_docstrings.pyHead:
f80bd97c05641601d5158c12eef2aa48e7944892Do not self-approve. Do not
--adminmerge. Ruleset 18156473 requires two independent current-head APPROVE reviews. Copilot/Devin/CodeRabbit COMMENTED is not independent APPROVE.